package cn.kys.modules.system.service;

import cn.kys.modules.system.pojo.GeometryPojo;
import cn.kys.modules.system.pojo.SubtaskGeom;
import org.geotools.data.simple.SimpleFeatureSource;
import org.geotools.jdbc.JDBCDataStore;
import org.opengis.referencing.FactoryException;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.sql.SQLException;


public interface ImportShp2PgService {
    /**
     * 获取postgres连接对象
     */
    JDBCDataStore getDataStore();

    /**
     * 读取shapefile文件
     */
    SimpleFeatureSource readShp(File file);

    /**
     * 创建数据表
     */
    JDBCDataStore createTable(JDBCDataStore ds, SimpleFeatureSource source) throws FactoryException;

    /**
     * 进行数据写入
     */
    String shp2Table(JDBCDataStore ds, SimpleFeatureSource source) throws FactoryException, IOException, SQLException;

    /**
     * multipartFile转为file
     */
    File convertMultipartFilrToFile(MultipartFile multipartFile) throws IOException;

    String multipartFileShp2File(MultipartFile[] shpFiles);

  /**
   * @Author zhaoxw
   * @Description //TODO 判断shp数据是否存在在pg数据库中
   * @Date 14:39 2023/12/29
   * @return
   **/
    boolean shpHasImported(MultipartFile[] shpFiles);

    String  delShpByName(String shpName);

    boolean insertTableDept(String tablename);

    /**
     * 判断新导入的shp类型 是点或者线的话  转化为面shp
     */
   void toMultipolygon(String tablename);

/**
 * @Author zhaoxw
 * @Description //添加手绘新功能、点、线、面  无论是点/线 都转面
 * @Date 14:05 2024/4/9
 * @return
 **/
    Integer insertVectorByDraw(SubtaskGeom subtaskGeom);
}
